A packet classifier is a module—either hardware or software—that classifies a packet by inspecting one or more fields of the packet. Typically, a packet classifier classifies a packet by examining fields in one or more headers of the packet. The packet classifier may also determine an action to be performed on the packet based on the determined classification.
Currently, packet classifiers are either implemented in hardware using highly specific devices, such as a ternary content addressable memory (TCAM), or implemented in software. Packet classification is commonly performed in several important network devices, such as switches, routers and load-balancers.
A packet classifier (“classifier” for short) can become a bottle-neck if the packets to be processed by the classifier are arriving at the classifier at a rate that is faster than the rate at which classifier can process a packet. For example, on a 10 Giga bit per second (Gbit/sec) line, the time between minimal—64 octet—packets is approximately 50 nanoseconds. Thus, if the amount of time it takes a classifier to process a packet is greater than 50 nanoseconds, then packets may end up being dropped. A solution to this problem is to increase the computing power of the classifier. But this can be expensive.